home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / blankery / bserverdir / sources / clients / rastaparrot.c < prev    next >
C/C++ Source or Header  |  1994-11-29  |  13KB  |  551 lines

  1. ; /*
  2. sc rastaparrot.c DATA=FAR NMINC STRMERGE NOSTKCHK IGNORE=73 STRUCTUREEQUIVALENCE NOSTDIO
  3. slink from lib:c.o rastaparrot.o to //Clients/RastaParrot lib lib:sc.lib lib:amiga.lib /lib/client.lib SC SD STRIPDEBUG NOICONS
  4. delete rastaparrot.o
  5. quit
  6.  
  7.  RastaParrot 1.2  (Client for BServer)
  8.  
  9.  Copyright © 1994 Stefano Reksten of 3AM - The Three Amigos!!!
  10.  All rights reserved.
  11.  
  12.  The RastaParrot(TM) is Copyright © Massimo Capanni (JAMAICAN of 3AM)
  13. */
  14.  
  15. #include <exec/memory.h>
  16. #include <intuition/intuition.h>
  17.  
  18. #include <clib/exec_protos.h>
  19. #include <clib/intuition_protos.h>
  20. #include <clib/graphics_protos.h>
  21. #include <clib/alib_protos.h>
  22. #include <time.h>
  23.  
  24. #include "/include/client.h"
  25. #include "/include/bitmap/bitmap.h"
  26. #include "/include/bitmap/bitmap_pragmas.h"
  27.  
  28. extern ULONG RangeSeed;
  29.  
  30. struct IntuitionBase *IntuitionBase;
  31. struct GfxBase *GfxBase;
  32. struct Library *BitMapBase;
  33.  
  34. USHORT rp_ctab[8] = {
  35.  0x000, 0x520, 0x0, 0x941, 0xB00, 0xBF0, 0xF60, 0xFFF
  36.  };
  37.  
  38. UWORD chip rp1_imgdata[372] = {
  39.  0x0, 0x1, 0x8000, 0x0,
  40.  0x0, 0x3, 0x0, 0x0,
  41.  0x0, 0x187, 0x300, 0x0,
  42.  0x0, 0x1C7, 0x1E00, 0x0,
  43.  0x0, 0x78F7, 0xFC00, 0x0,
  44.  0x0, 0x7FFF, 0xF000, 0x0,
  45.  0x20, 0x3FFF, 0xF000, 0x0,
  46.  0x78, 0x3FFF, 0xE000, 0x0,
  47.  0x7C, 0xBFFF, 0xC000, 0x0,
  48.  0x7E, 0xFFF3, 0xC000, 0x0,
  49.  0x7F, 0xFFE7, 0xC000, 0x0,
  50.  0x7F, 0xFFCF, 0xC000, 0x0,
  51.  0x7F, 0xFFDB, 0xC000, 0x0,
  52.  0x3F, 0xFFC3, 0x8000, 0x0,
  53.  0x1C3F, 0xFFDF, 0x8000, 0x0,
  54.  0x7F3F, 0xFFFF, 0x8000, 0x0,
  55.  0x3FBF, 0xFFFF, 0x8000, 0x0,
  56.  0x1FFF, 0xFFFF, 0x9C00, 0x0,
  57.  0x3FFF, 0xFFFF, 0xCF00, 0x0,
  58.  0x7FFF, 0xFFFF, 0xC7E0, 0x0,
  59.  0x7FFF, 0xFFFF, 0xC3E0, 0x0,
  60.  0xFFFF, 0xFFFF, 0x80C0, 0x0,
  61.  0xCFFF, 0xFFFF, 0x8000, 0x0,
  62.  0xFFF, 0xFFFF, 0x0, 0x0,
  63.  0x1FFF, 0xFFFF, 0x0, 0x0,
  64.  0x1FFF, 0xFFFE, 0x0, 0x0,
  65.  0x1C0F, 0xFFFC, 0x0, 0x0,
  66.  0x807, 0xFFF0, 0x0, 0x0,
  67.  0x1, 0x9000, 0x0, 0x0,
  68.  0x0, 0x0, 0x0, 0x0,
  69.  0x0, 0x0, 0x0, 0x0,
  70.  0x0, 0x0, 0x0, 0x0,
  71.  0x0, 0x0, 0x0, 0x0,
  72.  0x0, 0x0, 0x0, 0x0,
  73.  0x0, 0x2, 0x0, 0x0,
  74.  0x0, 0x42, 0x1000, 0x0,
  75.  0x0, 0x63, 0x2000, 0x0,
  76.  0x0, 0x7F7, 0xC000, 0x0,
  77.  0x0, 0x7FF, 0xC000, 0x0,
  78.  0x30, 0xFFF, 0x8000, 0x0,
  79.  0x38, 0xFE3, 0x8000, 0x0,
  80.  0x3C, 0xFC3, 0x8000, 0x0,
  81.  0x3E, 0x4F83, 0x8000, 0x0,
  82.  0x1F, 0x3F83, 0xFFE0, 0x0,
  83.  0xF, 0x9F83, 0xFFFF, 0x0,
  84.  0x7, 0xCFC3, 0xFFFF, 0x8000,
  85.  0x1B, 0xEFC3, 0xBFFF, 0xC000,
  86.  0x919, 0xE7F3, 0xC007, 0xC000,
  87.  0xF8F, 0xF3CF, 0xFFC0, 0xE000,
  88.  0xFC7, 0xF9FF, 0xBF00, 0x2000,
  89.  0x1F89, 0xFFFF, 0x87E0, 0x0,
  90.  0x3FF7, 0xFFFF, 0x3E0, 0x0,
  91.  0x47F8, 0x7FFF, 0xC0, 0x0,
  92.  0x7FF, 0x3FFE, 0x0, 0x0,
  93.  0x7FF, 0xFFFE, 0x0, 0x0,
  94.  0xDCF, 0xFFFC, 0x0, 0x0,
  95.  0xC07, 0xFFF8, 0x0, 0x0,
  96.  0x3, 0xFFF0, 0x0, 0x0,
  97.  0x0, 0xFF00, 0x0, 0x0,
  98.  0x0, 0x6F80, 0x0, 0x0,
  99.  0x1, 0x9BC0, 0x0, 0x0,
  100.  0x1, 0x140, 0x0, 0x0,
  101.  0x0, 0x0, 0x0, 0x0,
  102.  0x0, 0x0, 0x0, 0x0,
  103.  0x0, 0x0, 0x0, 0x0,
  104.  0x0, 0x0, 0x0, 0x0,
  105.  0x0, 0x0, 0x0, 0x0,
  106.  0x0, 0x0, 0x0, 0x0,
  107.  0x0, 0x0, 0x0, 0x0,
  108.  0x0, 0x0, 0x0, 0x0,
  109.  0x0, 0x0, 0x0, 0x0,
  110.  0x0, 0xC, 0x0, 0x0,
  111.  0x0, 0x18, 0x0, 0x0,
  112.  0x0, 0x30, 0x0, 0x0,
  113.  0x0, 0x24, 0x3FE0, 0x0,
  114.  0x0, 0x3C, 0x7FFF, 0x0,
  115.  0x0, 0x20, 0x7FFF, 0x8000,
  116.  0x0, 0x0, 0x7FFF, 0xC000,
  117.  0x0, 0x0, 0x7FC7, 0xC000,
  118.  0x0, 0x0, 0x7FC0, 0xE000,
  119.  0x0, 0x0, 0x3F00, 0x2000,
  120.  0x0, 0x0, 0x7E0, 0x0,
  121.  0x0, 0x0, 0x3F0, 0x0,
  122.  0x0, 0x0, 0xF0, 0x0,
  123.  0x0, 0x0, 0x60, 0x0,
  124.  0x0, 0x0, 0x0, 0x0,
  125.  0x0, 0x0, 0x0, 0x0,
  126.  0x0, 0x0, 0x0, 0x0,
  127.  0x0, 0x0, 0x0, 0x0,
  128.  0x0, 0x0, 0x0, 0x0,
  129.  0x0, 0x6F80, 0x0, 0x0,
  130.  0x1, 0x9BC0, 0x0, 0x0,
  131.  0x1, 0x140, 0x0, 0x0
  132.  };
  133.  
  134. UWORD chip rp2_imgdata[372] = {
  135.  0x0, 0x1, 0x8000, 0x0,
  136.  0x0, 0x3, 0x0, 0x0,
  137.  0x0, 0x187, 0x300, 0x0,
  138.  0x0, 0x1C7, 0x1E00, 0x0,
  139.  0x0, 0x78F7, 0xFC00, 0x0,
  140.  0x0, 0x7FFF, 0xF000, 0x0,
  141.  0x0, 0x3FFF, 0xF000, 0x0,
  142.  0x0, 0x3FFF, 0xE000, 0x0,
  143.  0x0, 0xBFFF, 0xC000, 0x0,
  144.  0x0, 0xFFF3, 0xC000, 0x0,
  145.  0x1, 0xFFE7, 0xC000, 0x0,
  146.  0x1, 0xFFCF, 0xC000, 0x0,
  147.  0x1, 0xFFDB, 0xC000, 0x0,
  148.  0x3, 0xFFC3, 0x8000, 0x0,
  149.  0x1C03, 0xFFDF, 0x8000, 0x0,
  150.  0x7F07, 0xFFFF, 0x8000, 0x0,
  151.  0x3F87, 0xFFFF, 0x8000, 0x0,
  152.  0x1FEF, 0xFFFF, 0x9C00, 0x0,
  153.  0x3FFF, 0xFFFF, 0xCF00, 0x0,
  154.  0x7FFF, 0xFFFF, 0xC7E0, 0x0,
  155.  0x7FFF, 0xFFFF, 0xC3E0, 0x0,
  156.  0xFFFF, 0xFFFF, 0x80C0, 0x0,
  157.  0xCFFF, 0xFFFF, 0x8000, 0x0,
  158.  0xFFF, 0xFFFF, 0x0, 0x0,
  159.  0x1FFF, 0xFFFF, 0x0, 0x0,
  160.  0x1FFF, 0xFFFE, 0x0, 0x0,
  161.  0x1C7F, 0xFFFC, 0x0, 0x0,
  162.  0x87F, 0xFFF0, 0x0, 0x0,
  163.  0x79, 0x9000, 0x0, 0x0,
  164.  0x0, 0x0, 0x0, 0x0,
  165.  0x0, 0x0, 0x0, 0x0,
  166.  0x0, 0x0, 0x0, 0x0,
  167.  0x0, 0x0, 0x0, 0x0,
  168.  0x0, 0x0, 0x0, 0x0,
  169.  0x0, 0x2, 0x0, 0x0,
  170.  0x0, 0x42, 0x1000, 0x0,
  171.  0x0, 0x63, 0x2000, 0x0,
  172.  0x0, 0x7F7, 0xC000, 0x0,
  173.  0x0, 0x7FF, 0xC000, 0x0,
  174.  0x0, 0xFFF, 0x8000, 0x0,
  175.  0x0, 0xFE3, 0x8000, 0x0,
  176.  0x0, 0xFC3, 0x8000, 0x0,
  177.  0x0, 0xCF83, 0x8000, 0x0,
  178.  0x0, 0xFF83, 0xFFE0, 0x0,
  179.  0x1, 0xFF83, 0xFFFF, 0x0,
  180.  0x1, 0xFFC3, 0xFFFF, 0x8000,
  181.  0x1, 0xFFC3, 0xBFFF, 0xC000,
  182.  0x903, 0xFFF3, 0xC007, 0xC000,
  183.  0xF87, 0xFFCF, 0xFFC0, 0xE000,
  184.  0xFC4, 0xFEFF, 0xBF00, 0x2000,
  185.  0x1F81, 0xFCFF, 0x87E0, 0x0,
  186.  0x3FE7, 0x79FF, 0x3E0, 0x0,
  187.  0x47CC, 0x67FF, 0xC0, 0x0,
  188.  0x7D9, 0xEFFE, 0x0, 0x0,
  189.  0x7D7, 0xDFFE, 0x0, 0x0,
  190.  0xDCF, 0xBFFC, 0x0, 0x0,
  191.  0xC1E, 0x7FF8, 0x0, 0x0,
  192.  0x3C, 0xFFF0, 0x0, 0x0,
  193.  0x38, 0xFF00, 0x0, 0x0,
  194.  0x0, 0x6F80, 0x0, 0x0,
  195.  0x1, 0x9BC0, 0x0, 0x0,
  196.  0x1, 0x140, 0x0, 0x0,
  197.  0x0, 0x0, 0x0, 0x0,
  198.  0x0, 0x0, 0x0, 0x0,
  199.  0x0, 0x0, 0x0, 0x0,
  200.  0x0, 0x0, 0x0, 0x0,
  201.  0x0, 0x0, 0x0, 0x0,
  202.  0x0, 0x0, 0x0, 0x0,
  203.  0x0, 0x0, 0x0, 0x0,
  204.  0x0, 0x0, 0x0, 0x0,
  205.  0x0, 0x0, 0x0, 0x0,
  206.  0x0, 0xC, 0x0, 0x0,
  207.  0x0, 0x18, 0x0, 0x0,
  208.  0x0, 0x30, 0x0, 0x0,
  209.  0x0, 0x24, 0x3FE0, 0x0,
  210.  0x0, 0x3C, 0x7FFF, 0x0,
  211.  0x0, 0x20, 0x7FFF, 0x8000,
  212.  0x0, 0x0, 0x7FFF, 0xC000,
  213.  0x0, 0x0, 0x7FC7, 0xC000,
  214.  0x0, 0x0, 0x7FC0, 0xE000,
  215.  0x0, 0x0, 0x3F00, 0x2000,
  216.  0x0, 0x0, 0x7E0, 0x0,
  217.  0x0, 0x0, 0x3F0, 0x0,
  218.  0x0, 0x0, 0xF0, 0x0,
  219.  0x0, 0x0, 0x60, 0x0,
  220.  0x0, 0x0, 0x0, 0x0,
  221.  0x0, 0x0, 0x0, 0x0,
  222.  0x0, 0x0, 0x0, 0x0,
  223.  0x0, 0x0, 0x0, 0x0,
  224.  0x0, 0x0, 0x0, 0x0,
  225.  0x0, 0x6F80, 0x0, 0x0,
  226.  0x1, 0x9BC0, 0x0, 0x0,
  227.  0x1, 0x140, 0x0, 0x0
  228.  };
  229.  
  230. UWORD chip rp3_imgdata[372] = {
  231.  0x0, 0x3000, 0x0, 0x0,
  232.  0x0, 0x1800, 0x0, 0x0,
  233.  0x18, 0x1C30, 0x0, 0x0,
  234.  0xF, 0x1C70, 0x0, 0x0,
  235.  0x7, 0xFDE3, 0xC000, 0x0,
  236.  0x1, 0xFFFF, 0xC000, 0x0,
  237.  0x1, 0xFFFF, 0x8080, 0x0,
  238.  0x0, 0xFFFF, 0x83C0, 0x0,
  239.  0x0, 0x7FFF, 0xA7C0, 0x0,
  240.  0x0, 0x79FF, 0xEFC0, 0x0,
  241.  0x0, 0x7CFF, 0xFFC0, 0x0,
  242.  0x0, 0x7E7F, 0xFFC0, 0x0,
  243.  0x0, 0x7B7F, 0xFFC0, 0x0,
  244.  0x0, 0x387F, 0xFF80, 0x0,
  245.  0x0, 0x3F7F, 0xFF87, 0x0,
  246.  0x0, 0x3FFF, 0xFF9F, 0xC000,
  247.  0x0, 0x3FFF, 0xFFBF, 0x8000,
  248.  0x7, 0x3FFF, 0xFFFF, 0x0,
  249.  0x1E, 0x7FFF, 0xFFFF, 0x8000,
  250.  0xFC, 0x7FFF, 0xFFFF, 0xC000,
  251.  0xF8, 0x7FFF, 0xFFFF, 0xC000,
  252.  0x60, 0x3FFF, 0xFFFF, 0xE000,
  253.  0x0, 0x3FFF, 0xFFFE, 0x6000,
  254.  0x0, 0x1FFF, 0xFFFE, 0x0,
  255.  0x0, 0x1FFF, 0xFFFF, 0x0,
  256.  0x0, 0xFFF, 0xFFFF, 0x0,
  257.  0x0, 0x7FF, 0xFE07, 0x0,
  258.  0x0, 0x1FF, 0xFC02, 0x0,
  259.  0x0, 0x1, 0x3000, 0x0,
  260.  0x0, 0x0, 0x0, 0x0,
  261.  0x0, 0x0, 0x0, 0x0,
  262.  0x0, 0x0, 0x0, 0x0,
  263.  0x0, 0x0, 0x0, 0x0,
  264.  0x0, 0x0, 0x0, 0x0,
  265.  0x0, 0x800, 0x0, 0x0,
  266.  0x1, 0x840, 0x0, 0x0,
  267.  0x0, 0x98C0, 0x0, 0x0,
  268.  0x0, 0x7DFC, 0x0, 0x0,
  269.  0x0, 0x7FFC, 0x0, 0x0,
  270.  0x0, 0x3FFE, 0x180, 0x0,
  271.  0x0, 0x38FE, 0x380, 0x0,
  272.  0x0, 0x387E, 0x780, 0x0,
  273.  0x0, 0x383E, 0x4F80, 0x0,
  274.  0xFF, 0xF83F, 0x9F00, 0x0,
  275.  0x1FFF, 0xF83F, 0x3E00, 0x0,
  276.  0x3FFF, 0xF87E, 0x7C00, 0x0,
  277.  0x7FFF, 0xB87E, 0xFB00, 0x0,
  278.  0x7C00, 0x79FC, 0xF312, 0x0,
  279.  0xE07F, 0xFE79, 0xFE3E, 0x0,
  280.  0x801F, 0xBFF3, 0xFC7E, 0x0,
  281.  0xFC, 0x3FFF, 0xF23F, 0x0,
  282.  0xF8, 0x1FFF, 0xFDFF, 0x8000,
  283.  0x60, 0x1FFF, 0xC3FC, 0x4000,
  284.  0x0, 0xFFF, 0x9FFC, 0x0,
  285.  0x0, 0xFFF, 0xFFFC, 0x0,
  286.  0x0, 0x7FF, 0xFE76, 0x0,
  287.  0x0, 0x3FF, 0xFC06, 0x0,
  288.  0x0, 0x1FF, 0xF800, 0x0,
  289.  0x0, 0x1F, 0xE000, 0x0,
  290.  0x0, 0x3E, 0xC000, 0x0,
  291.  0x0, 0x7B, 0x3000, 0x0,
  292.  0x0, 0x50, 0x1000, 0x0,
  293.  0x0, 0x0, 0x0, 0x0,
  294.  0x0, 0x0, 0x0, 0x0,
  295.  0x0, 0x0, 0x0, 0x0,
  296.  0x0, 0x0, 0x0, 0x0,
  297.  0x0, 0x0, 0x0, 0x0,
  298.  0x0, 0x0, 0x0, 0x0,
  299.  0x0, 0x0, 0x0, 0x0,
  300.  0x0, 0x0, 0x0, 0x0,
  301.  0x0, 0x0, 0x0, 0x0,
  302.  0x0, 0x600, 0x0, 0x0,
  303.  0x0, 0x300, 0x0, 0x0,
  304.  0x0, 0x180, 0x0, 0x0,
  305.  0xFF, 0x8480, 0x0, 0x0,
  306.  0x1FFF, 0xC780, 0x0, 0x0,
  307.  0x3FFF, 0xC080, 0x0, 0x0,
  308.  0x7FFF, 0xC000, 0x0, 0x0,
  309.  0x7C7F, 0xC000, 0x0, 0x0,
  310.  0xE07F, 0xC000, 0x0, 0x0,
  311.  0x801F, 0x8000, 0x0, 0x0,
  312.  0xFC, 0x0, 0x0, 0x0,
  313.  0x1F8, 0x0, 0x0, 0x0,
  314.  0x1E0, 0x0, 0x0, 0x0,
  315.  0xC0, 0x0, 0x0, 0x0,
  316.  0x0, 0x0, 0x0, 0x0,
  317.  0x0, 0x0, 0x0, 0x0,
  318.  0x0, 0x0, 0x0, 0x0,
  319.  0x0, 0x0, 0x0, 0x0,
  320.  0x0, 0x0, 0x0, 0x0,
  321.  0x0, 0x3E, 0xC000, 0x0,
  322.  0x0, 0x7B, 0x3000, 0x0,
  323.  0x0, 0x50, 0x1000, 0x0
  324.  };
  325.  
  326. UWORD chip rp4_imgdata[372] = {
  327.  0x0, 0x3000, 0x0, 0x0,
  328.  0x0, 0x1800, 0x0, 0x0,
  329.  0x18, 0x1C30, 0x0, 0x0,
  330.  0xF, 0x1C70, 0x0, 0x0,
  331.  0x7, 0xFDE3, 0xC000, 0x0,
  332.  0x1, 0xFFFF, 0xC000, 0x0,
  333.  0x1, 0xFFFF, 0x8000, 0x0,
  334.  0x0, 0xFFFF, 0x8000, 0x0,
  335.  0x0, 0x7FFF, 0xA000, 0x0,
  336.  0x0, 0x79FF, 0xE000, 0x0,
  337.  0x0, 0x7CFF, 0xF000, 0x0,
  338.  0x0, 0x7E7F, 0xF000, 0x0,
  339.  0x0, 0x7B7F, 0xF000, 0x0,
  340.  0x0, 0x387F, 0xF800, 0x0,
  341.  0x0, 0x3F7F, 0xF807, 0x0,
  342.  0x0, 0x3FFF, 0xFC1F, 0xC000,
  343.  0x0, 0x3FFF, 0xFC3F, 0x8000,
  344.  0x7, 0x3FFF, 0xFEFF, 0x0,
  345.  0x1E, 0x7FFF, 0xFFFF, 0x8000,
  346.  0xFC, 0x7FFF, 0xFFFF, 0xC000,
  347.  0xF8, 0x7FFF, 0xFFFF, 0xC000,
  348.  0x60, 0x3FFF, 0xFFFF, 0xE000,
  349.  0x0, 0x3FFF, 0xFFFE, 0x6000,
  350.  0x0, 0x1FFF, 0xFFFE, 0x0,
  351.  0x0, 0x1FFF, 0xFFFF, 0x0,
  352.  0x0, 0xFFF, 0xFFFF, 0x0,
  353.  0x0, 0x7FF, 0xFFC7, 0x0,
  354.  0x0, 0x1FF, 0xFFC2, 0x0,
  355.  0x0, 0x1, 0x33C0, 0x0,
  356.  0x0, 0x0, 0x0, 0x0,
  357.  0x0, 0x0, 0x0, 0x0,
  358.  0x0, 0x0, 0x0, 0x0,
  359.  0x0, 0x0, 0x0, 0x0,
  360.  0x0, 0x0, 0x0, 0x0,
  361.  0x0, 0x800, 0x0, 0x0,
  362.  0x1, 0x840, 0x0, 0x0,
  363.  0x0, 0x98C0, 0x0, 0x0,
  364.  0x0, 0x7DFC, 0x0, 0x0,
  365.  0x0, 0x7FFC, 0x0, 0x0,
  366.  0x0, 0x3FFE, 0x0, 0x0,
  367.  0x0, 0x38FE, 0x0, 0x0,
  368.  0x0, 0x387E, 0x0, 0x0,
  369.  0x0, 0x383E, 0x6000, 0x0,
  370.  0xFF, 0xF83F, 0xE000, 0x0,
  371.  0x1FFF, 0xF83F, 0xF000, 0x0,
  372.  0x3FFF, 0xF87F, 0xF000, 0x0,
  373.  0x7FFF, 0xB87F, 0xF000, 0x0,
  374.  0x7C00, 0x79FF, 0xF812, 0x0,
  375.  0xE07F, 0xFE7F, 0xFC3E, 0x0,
  376.  0x801F, 0xBFEF, 0xE47E, 0x0,
  377.  0xFC, 0x3FE7, 0xF03F, 0x0,
  378.  0xF8, 0x1FF3, 0xDCFF, 0x8000,
  379.  0x60, 0x1FFC, 0xC67C, 0x4000,
  380.  0x0, 0xFFE, 0xF37C, 0x0,
  381.  0x0, 0xFFF, 0x7D7C, 0x0,
  382.  0x0, 0x7FF, 0xBE76, 0x0,
  383.  0x0, 0x3FF, 0xCF06, 0x0,
  384.  0x0, 0x1FF, 0xE780, 0x0,
  385.  0x0, 0x1F, 0xE380, 0x0,
  386.  0x0, 0x3E, 0xC000, 0x0,
  387.  0x0, 0x7B, 0x3000, 0x0,
  388.  0x0, 0x50, 0x1000, 0x0,
  389.  0x0, 0x0, 0x0, 0x0,
  390.  0x0, 0x0, 0x0, 0x0,
  391.  0x0, 0x0, 0x0, 0x0,
  392.  0x0, 0x0, 0x0, 0x0,
  393.  0x0, 0x0, 0x0, 0x0,
  394.  0x0, 0x0, 0x0, 0x0,
  395.  0x0, 0x0, 0x0, 0x0,
  396.  0x0, 0x0, 0x0, 0x0,
  397.  0x0, 0x0, 0x0, 0x0,
  398.  0x0, 0x600, 0x0, 0x0,
  399.  0x0, 0x300, 0x0, 0x0,
  400.  0x0, 0x180, 0x0, 0x0,
  401.  0xFF, 0x8480, 0x0, 0x0,
  402.  0x1FFF, 0xC780, 0x0, 0x0,
  403.  0x3FFF, 0xC080, 0x0, 0x0,
  404.  0x7FFF, 0xC000, 0x0, 0x0,
  405.  0x7C7F, 0xC000, 0x0, 0x0,
  406.  0xE07F, 0xC000, 0x0, 0x0,
  407.  0x801F, 0x8000, 0x0, 0x0,
  408.  0xFC, 0x0, 0x0, 0x0,
  409.  0x1F8, 0x0, 0x0, 0x0,
  410.  0x1E0, 0x0, 0x0, 0x0,
  411.  0xC0, 0x0, 0x0, 0x0,
  412.  0x0, 0x0, 0x0, 0x0,
  413.  0x0, 0x0, 0x0, 0x0,
  414.  0x0, 0x0, 0x0, 0x0,
  415.  0x0, 0x0, 0x0, 0x0,
  416.  0x0, 0x0, 0x0, 0x0,
  417.  0x0, 0x3E, 0xC000, 0x0,
  418.  0x0, 0x7B, 0x3000, 0x0,
  419.  0x0, 0x50, 0x1000, 0x0
  420.  };
  421.  
  422.  
  423. struct Image rp_image = { 0, 0, 0x33, 0x1F, 0x3, rp1_imgdata, 0x7, 0, NULL };
  424.  
  425. struct Screen *scr;
  426.  
  427.  
  428. UWORD top;
  429. WORD left, oldleft;
  430. UBYTE delay = 1, dx;
  431. struct BitMap *bmap, *rasta_bitmap;
  432. struct RastPort *rport;
  433.  
  434. struct DisplayIDInformation *dinfo;
  435. ULONG command;
  436.  
  437. void RastaParrot( void )
  438. {
  439. UBYTE direction;
  440. UWORD swidth, sheight;
  441. struct Rectangle *rect;
  442.  
  443. rect = GETTXTOSCANRECT(dinfo);
  444.  
  445. swidth = RECTANGLEWIDTH(rect);
  446. sheight = RECTANGLEHEIGHT(rect);
  447.  
  448. if ( scr = OpenScreenTags( NULL,
  449.     SA_Width, swidth,
  450.     SA_Height, sheight,
  451.     SA_Depth, 3,
  452.     SA_Type, CUSTOMSCREEN,
  453.     SA_Quiet, TRUE,
  454.     SA_DisplayID, DISPLAYID(dinfo),
  455.     SA_Overscan, OSCAN_TEXT,
  456.     TAG_END ) )
  457.     {
  458.     register struct ViewPort *vp = &(scr->ViewPort);
  459.     register struct RastPort *rp = &(scr->RastPort);
  460.  
  461.     SpritesOff();
  462.  
  463.     LoadRGB4( vp, rp_ctab, 8 );
  464.     SetAPen( rp, 0 );
  465.  
  466.     delay = 1;
  467.     direction = RangeRand( 2 );
  468.     dx = RangeRand( 3 ) + 1;
  469.     left = RangeRand( swidth );
  470.     oldleft = left;
  471.     top = RangeRand(sheight - 0x5F) + 0x40;
  472.  
  473.     while( STILL_BLANKING )
  474.         {
  475.         if ( !(--delay) )
  476.             {
  477.             if ( left >= swidth - 82 )
  478.                 {
  479.                 direction = 1;
  480.                 dx = RangeRand( 3 ) + 1;
  481.                 left = swidth - 82;
  482.                 }
  483.             if ( left <= 12 )
  484.                 {
  485.                 direction = 0;
  486.                 dx = RangeRand( 3 ) + 1;
  487.                 left = 12;
  488.                 }
  489.  
  490.             if ( direction == 0 )
  491.                 {
  492.                 rp_image.ImageData = ( rp_image.ImageData == rp1_imgdata ? rp2_imgdata : rp1_imgdata );
  493.                 left += dx;
  494.                 }
  495.             else
  496.                 {
  497.                 rp_image.ImageData = ( rp_image.ImageData == rp3_imgdata ? rp4_imgdata : rp3_imgdata );
  498.                 left -= dx;
  499.                 }
  500.  
  501.             WaitTOF();
  502.             RectFill( rp, oldleft, top, oldleft + 0x33, top + 0x1F );
  503.             DrawImage( rp, &rp_image, left, top );
  504.             oldleft = left;
  505.  
  506.             delay = 10;
  507.             }
  508.         else    WaitTOF();
  509.         }
  510.     SpritesOn();
  511.     CloseScreen( scr );
  512.     }
  513. else
  514.     SendClientMsg( ACTION_FAILED );
  515. }
  516.  
  517.  
  518. void __main( char *line )
  519. {
  520. if ( IntuitionBase = (struct IntuitionBase *)OpenLibrary( "intuition.library", 36L ) )
  521.     {
  522.     if ( GfxBase = (struct GfxBase *)OpenLibrary( "graphics.library",0L ) )
  523.         {
  524.         if ( BitMapBase = OpenLibrary( "bitmap.library", 0L ) )
  525.             {
  526.             if ( rasta_bitmap = CreateBitMap( 0x33, 0x1F, 3 ) )
  527.                 {
  528.                 if ( rport = AllocMem( sizeof(struct RastPort), MEMF_CLEAR ) )
  529.                     {
  530.                     InitRastPort( rport );
  531.                     rport->BitMap = rasta_bitmap;
  532.  
  533.                     RangeSeed = time( NULL );
  534.  
  535.                     if ( dinfo = OpenCommunication() )
  536.                         {
  537.                         RastaParrot();
  538.                         CloseCommunication( dinfo );
  539.                         }
  540.                     FreeMem( rport, sizeof(struct RastPort) );
  541.                     }
  542.                 DisposeBitMap( rasta_bitmap );
  543.                 }
  544.             CloseLibrary( BitMapBase );
  545.             }
  546.         CloseLibrary( (struct Library *)GfxBase );
  547.         }
  548.     CloseLibrary( (struct Library *)IntuitionBase );
  549.     }
  550. }
  551.